package com.hello.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hello.common.core.annotation.Excel;
import com.hello.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 报模板配置对象 report_template
 * 
 * @author hello
 * @date 2025-09-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class ReportTemplate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 模板ID */
    private Long templateId;

    /** 模板名称 */
    @Excel(name = "模板名称")
    private String templateName;

    /** 模板类型(daily=日报/weekly=周报/monthly=月报/custom=自定义) */
    @Excel(name = "模板类型(daily=日报/weekly=周报/monthly=月报/custom=自定义)")
    private String templateType;

    /** 报表类别(device=设备统计/environment=环境监测/detection=检测分析/alarm=告警统计/overview=综合概览) */
    @Excel(name = "报表类别(device=设备统计/environment=环境监测/detection=检测分析/alarm=告警统计/overview=综合概览)")
    private String reportCategory;

    /** 数据源配置(JSON格式) */
    @Excel(name = "数据源配置(JSON格式)")
    private String dataSources;

    /** 图表配置(JSON格式) */
    @Excel(name = "图表配置(JSON格式)")
    private String chartConfig;

    /** 模板内容(HTML/JSON格式) */
    @Excel(name = "模板内容(HTML/JSON格式)")
    private String templateContent;

    /** 生成计划(cron表达式) */
    @Excel(name = "生成计划(cron表达式)")
    private String generationSchedule;

    /** 自动发送配置(邮件列表等) */
    @Excel(name = "自动发送配置(邮件列表等)")
    private String autoSendConfig;

    /** 是否启用(0=否,1=是) */
    @Excel(name = "是否启用(0=否,1=是)")
    private String isActive;

    public void setTemplateId(Long templateId) 
    {
        this.templateId = templateId;
    }

    public Long getTemplateId() 
    {
        return templateId;
    }
    public void setTemplateName(String templateName) 
    {
        this.templateName = templateName;
    }

    public String getTemplateName() 
    {
        return templateName;
    }
    public void setTemplateType(String templateType) 
    {
        this.templateType = templateType;
    }

    public String getTemplateType() 
    {
        return templateType;
    }
    public void setReportCategory(String reportCategory) 
    {
        this.reportCategory = reportCategory;
    }

    public String getReportCategory() 
    {
        return reportCategory;
    }
    public void setDataSources(String dataSources) 
    {
        this.dataSources = dataSources;
    }

    public String getDataSources() 
    {
        return dataSources;
    }
    public void setChartConfig(String chartConfig) 
    {
        this.chartConfig = chartConfig;
    }

    public String getChartConfig() 
    {
        return chartConfig;
    }
    public void setTemplateContent(String templateContent) 
    {
        this.templateContent = templateContent;
    }

    public String getTemplateContent() 
    {
        return templateContent;
    }
    public void setGenerationSchedule(String generationSchedule) 
    {
        this.generationSchedule = generationSchedule;
    }

    public String getGenerationSchedule() 
    {
        return generationSchedule;
    }
    public void setAutoSendConfig(String autoSendConfig) 
    {
        this.autoSendConfig = autoSendConfig;
    }

    public String getAutoSendConfig() 
    {
        return autoSendConfig;
    }
    public void setIsActive(String isActive) 
    {
        this.isActive = isActive;
    }

    public String getIsActive() 
    {
        return isActive;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("templateId", getTemplateId())
            .append("templateName", getTemplateName())
            .append("templateType", getTemplateType())
            .append("reportCategory", getReportCategory())
            .append("dataSources", getDataSources())
            .append("chartConfig", getChartConfig())
            .append("templateContent", getTemplateContent())
            .append("generationSchedule", getGenerationSchedule())
            .append("autoSendConfig", getAutoSendConfig())
            .append("isActive", getIsActive())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
